package com.thinkgem.jeesite.modules.sys.dao;


import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
import com.thinkgem.jeesite.modules.sys.entity.TbAgent;
import com.thinkgem.jeesite.modules.sys.entity.TbAgentProduct;
import com.thinkgem.jeesite.modules.sys.entity.TbAgentProductExample;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 代理商商品
 */
@MyBatisDao
public interface TbAgentProductMapper {
    int countByExample(TbAgentProductExample example);

    int deleteByExample(TbAgentProductExample example);
    /**
     *  根据id删除商品 jyy
     */
    int deleteByPrimaryKey(Integer id);
    /**
     * 添加商品 jyy
     */
    int insert(TbAgentProduct record) throws Exception;

    int insertSelective(TbAgentProduct record);
    /**
     * 查询全部商品 jyy
     * @param example
     */
    List<TbAgentProduct> selectByExample(TbAgentProductExample example) throws Exception;

    /**
     * @param id
     * @return 根据id查询商品 jyy
     */
    TbAgentProduct selectByPrimaryKey(@Param("id") Integer id);

    int updateByExampleSelective(@Param("record") TbAgentProduct record, @Param("example") TbAgentProductExample example);

    int updateByExample(@Param("record") TbAgentProduct record, @Param("example") TbAgentProductExample example);

    int updateByPrimaryKeySelective(TbAgentProduct record);
    //根据代理商商品的修改代理商商品信息，商品导入时的处理
    int updateForImportProduct(TbAgentProduct tbAgentProduct);
    /**
     * 修改商品 jyy
     */
    int updateByPrimaryKey(TbAgentProduct record) ;

    List<TbAgentProduct> getAgentProductByProIdAndAgentId(@Param("productId") Integer productId, @Param("userId") String userId);
    /**代理商
     * 商品下架 jyy
     */
    void updateStatus(TbAgentProduct tbAgentProduct);
    //代理商商品导入时判断商品在代理商商品表中
    List<TbAgentProduct> getAgentProductByAttr(TbAgentProduct tbAgentProduct);

    TbAgentProduct getAgentProductByIdAndAgentId(@Param("id") Integer id, @Param("userId") String userId);
    //根据商品id查询得到商品类型
    String selectReserveFlag(Integer id);
}